﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
	FILE* pFile;
	pFile = fopen("example.txt", "wb");
	fputs("This is an apple.", pFile);
	fseek(pFile, 9, SEEK_SET);
	fputs(" sam", pFile);
	fclose(pFile);
	return 0;
}

//int main()
//{
//	int n;
//	FILE* pFile;
//	char buffer[27];
//
//	pFile = fopen("myfile.txt", "w+");
//	for (n = 'A'; n <= 'Z'; n++)
//		fputc(n, pFile);
//	rewind(pFile);
//
//	fread(buffer, 1, 26, pFile);
//	fclose(pFile);
//
//	buffer[26] = '\0';
//	printf(buffer);
//	return 0;
//}

//int main()
//{
//	FILE* pFile;
//	//打开⽂件
//	pFile = fopen("myfile.txt", "w");
//	//⽂件操作
//	if (pFile != NULL)
//	{
//		fputs("fopen example", pFile);
//		//关闭⽂件
//		fclose(pFile);
//	}
//	return 0;
//}

//int main()
//{
//	FILE* pFile;
//	//打开⽂件
//	pFile = fopen("myfile.txt", "w");
//	//⽂件操作
//	if (pFile != NULL)
//	{
//		fputs("fopen example", pFile);
//		//关闭⽂件
//		fclose(pFile);
//	}
//	long size;
//	pFile = fopen("myfile.txt", "rb");
//	if (pFile == NULL)
//		perror("Error opening file");
//	else
//	{
//		fseek(pFile, 0, SEEK_END); // non-portable
//		size = ftell(pFile);
//		fclose(pFile);
//		printf("Size of myfile.txt: %ld bytes.\n", size);
//	}
//	return 0;
//}

//int main()
//{
//	FILE* pFile;
//	pFile = fopen("example.txt", "wb");
//	fputs("This is an apple.", pFile);
//	fseek(pFile, 9, SEEK_SET);
//	fputs(" sam", pFile);
//	fclose(pFile);
//	return 0;
//}

//int main()
//{
//	//写
//	FILE* pFile;
//	char ch = 0;
//	pFile = fopen("example.txt", "wb");
//	fputs("This is an apple.", pFile);
//	fseek(pFile, 9, SEEK_SET);//从当前位置
//	fputs(" sam", pFile);
//
	//ch = fgetc(pFile);
	//while (ch != EOF) 
	//{
	//	putchar(ch);
	//	ch = fgetc(pFile);
	//}
	//fclose(pFile);
//	return 0;
//}

//int main()
//{
//	FILE* pFile;
//	//打开⽂件
//	pFile = fopen("myfile.txt", "w");
//	//⽂件操作
//	if (pFile != NULL)
//	{
//		fputs("fopen example", pFile);
//		//关闭⽂件
//		fclose(pFile);
//	}
//	return 0;
//}

//struct _iobuf {
//	char* _ptr;
//	int _cnt;
//	char* _base;
//	int _flag;
//	int _file;
//	int _charbuf;
//	int _bufsiz;
//	char* _tmpfname;
//};
//typedef struct _iobuf FILE;

//int main()
//{
//	int a = 10000;
//	FILE* pf = fopen("test.txt", "wb");
//	fwrite(&a, 4, 1, pf);//⼆进制的形式写到⽂件中
//	fclose(pf);
//	pf = NULL;
//	return 0;
//}

//typedef struct st_type
//{
//	int i;
//	int* p_a;
//}type_a;
//int main()
//{
//	type_a* p = (type_a*)malloc(sizeof(type_a));
//	p->i = 100;
//	p->p_a = (int*)malloc(p->i * sizeof(int));
//
//	//业务处理
//	for (int i = 0; i < 100; i++)
//	{
//		p->p_a[i] = i;
//	}
//	for (int i = 0; i < 100; i++)
//	{
//		printf("%d ", p->p_a[i]);
//	}
//
//	//释放空间
//	free(p->p_a);
//	p->p_a = NULL;
//	free(p);
//	p = NULL;
//	return 0;
//}

//typedef struct st_type
//{
//	int i;
//	int a[0];//柔性数组成员
//}type_a;
//
//int main()
//{
//	int i = 0;
//	type_a* p = (type_a*)malloc(sizeof(type_a) + 100 * sizeof(int));
//	//业务处理
//	p->i = 100;
//	for (i = 0; i < 100; i++)
//	{
//		p->a[i] = i;
//	}
//	for (int i = 0; i < 100; i++)
//	{
//		printf("%d ", p->a[i]);
//	}
//	free(p);
//	return 0;
//}

//typedef struct st_type
//{
//	int i;
//	int a[0];//柔性数组成员
//}type_a;
//
//int main()
//{
//	printf("%zd\n", sizeof(type_a));//输出的是4
//	return 0;
//}

//struct st_type
//{
//	int i;
//	int a[];//柔性数组成员
//};

//struct st_type
//{
//	int i;
//	int a[0];//柔性数组成员
//};

//void GetMemory(char*p)
//{
//	p = (char*)malloc(100);
//}
//void Test(void)
//{
//	char* str = NULL;
//	GetMemory(str);
//	strcpy(str, "hello world");
//	printf(str);
//}
//
//int main()
//{
//	Test();
//	return 0;
//}